package d3d11.shader;

import org.bridj.Pointer;
import org.bridj.ann.Library;
import org.bridj.ann.Runtime;
import org.bridj.ann.Virtual;
import org.bridj.cpp.com.COMRuntime;
import org.bridj.cpp.com.IID;

import d3d11.core.ID3D11DeviceChild;

@IID("ddf57cba-9543-46e4-a12b-f207a0fe7fed")
@Library("d3d11")
@Runtime(COMRuntime.class)
public class ID3D11ClassLinkage extends ID3D11DeviceChild {

	public ID3D11ClassLinkage() {
		super();
	}
	public ID3D11ClassLinkage(Pointer pointer) {
		super(pointer);
	}
	@Virtual(0)
	public native int GetClassInstance(Pointer<?> pClassInstanceName, int InstanceIndex, Pointer<Pointer<ID3D11ClassInstance>> ppInstance);
	@Virtual(1)
	public native int CreateClassInstance(Pointer<?> pClassInstanceName, int ConstantBufferOffset, int ConstantVectorOffset, int TextureOffset, int SamplerOffset, Pointer<Pointer<ID3D11ClassInstance>> ppInstance);
}
